marshal এবং unmarshal এর ব্যবহার

Latest Technologies - অ্যাপাচি ক্যামেল (Apache  Camel) - Data Transformation এবং Format Conversion | NCTB BOOK

Apache Camel-এ marshal এবং unmarshal ফিচারগুলি ডেটার ফরম্যাট রূপান্তরের জন্য ব্যবহৃত হয়। এই ফিচারগুলি আপনাকে বিভিন্ন ডেটা ফরম্যাটের মধ্যে (যেমন JSON, XML, CSV) তথ্য কনভার্ট করতে সক্ষম করে।

Marshal এবং Unmarshal কী?

  • Marshal: একটি অবজেক্ট বা ডেটা স্ট্রাকচারকে একটি নির্দিষ্ট ফরম্যাটে রূপান্তরিত করা। উদাহরণস্বরূপ, একটি Java অবজেক্টকে JSON বা XML এ রূপান্তর করা।
  • Unmarshal: একটি নির্দিষ্ট ফরম্যাটের ডেটা (যেমন JSON বা XML) কে একটি অবজেক্ট বা ডেটা স্ট্রাকচারে রূপান্তরিত করা।

Marshal এবং Unmarshal ব্যবহার করা

১. JSON Marshal এবং Unmarshal

JSON থেকে Java অবজেক্টে Unmarshal

from("file:input?fileName=data.json")
    .unmarshal().json(JsonLibrary.Jackson, MyDataClass.class) // JSON to Java Object
    .to("log:unmarshaled");

Java অবজেক্ট থেকে JSON এ Marshal

from("direct:start")
    .marshal().json(JsonLibrary.Jackson) // Java Object to JSON
    .to("file:output?fileName=data.json");

২. XML Marshal এবং Unmarshal

XML থেকে Java অবজেক্টে Unmarshal

from("file:input?fileName=data.xml")
    .unmarshal().jaxb("com.example.model") // XML to Java Object
    .to("log:unmarshaled");

Java অবজেক্ট থেকে XML এ Marshal

from("direct:start")
    .marshal().jaxb("com.example.model") // Java Object to XML
    .to("file:output?fileName=data.xml");

ব্যবহার করা Library

  1. JsonLibrary: JSON ফরম্যাটের জন্য ব্যবহৃত। সাধারণত Jackson বা Gson ব্যবহার করা হয়।
  2. JAXB: Java Architecture for XML Binding। XML ডেটাকে Java অবজেক্টে এবং Java অবজেক্টকে XML ফরম্যাটে রূপান্তর করতে ব্যবহৃত হয়।

উদাহরণ: JSON Marshal এবং Unmarshal

নিচে একটি সম্পূর্ণ উদাহরণ দেয়া হলো যেখানে JSON ফাইল থেকে ডেটা পড়া হচ্ছে এবং তা Java অবজেক্টে রূপান্তর করা হচ্ছে, পরে Java অবজেক্টকে JSON ফরম্যাটে ফাইল হিসেবে সংরক্ষণ করা হচ্ছে।

public class MyDataClass {
    private String name;
    private int age;

    // Getters and Setters
}

from("file:input?fileName=data.json")
    .unmarshal().json(JsonLibrary.Jackson, MyDataClass.class) // JSON to Java Object
    .log("Name: ${body.name}, Age: ${body.age}") // Log the data
    .marshal().json(JsonLibrary.Jackson) // Java Object to JSON
    .to("file:output?fileName=output.json"); // Write to output.json

উপসংহার

Apache Camel-এ marshal এবং unmarshal ফিচারগুলি ডেটার ফরম্যাট পরিবর্তনের জন্য অত্যন্ত কার্যকরী এবং সহজ পদ্ধতি। এগুলির মাধ্যমে আপনি সহজেই JSON, XML, এবং অন্যান্য ফরম্যাটের মধ্যে তথ্য রূপান্তর করতে পারেন, যা বিভিন্ন সিস্টেমের মধ্যে ডেটা আদান-প্রদানে সাহায্য করে।

Marshal এবং Unmarshal ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনগুলোকে আরও নমনীয় এবং কার্যকরী করতে পারেন, কারণ এটি ডেটার স্ট্যান্ডার্ডাইজেশন এবং সামঞ্জস্যতা বজায় রাখতে সহায়ক।

Promotion